package
{
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	
	import models.Actualite;
	
	import mx.containers.Panel;
	
	public class ActualitesParser
	{
		
		private var filesDirectory:String = "fr/pages/";
		private var panelNews:Panel;
		private var graphicInit:GraphicInitialiser;
		
		public function ActualitesParser(panelNews:Panel,graphicInit:GraphicInitialiser)
		{
			this.panelNews = panelNews;
			this.graphicInit = graphicInit;
			this.initialiseNews();
		}

		/**
		 * Fonction appellée pour initialiser le panneau d'actualités
		 */ 
		private function initialiseNews():void{
			var service:URLLoader = new URLLoader(new URLRequest(filesDirectory+'actu.xml'));
			service.addEventListener(Event.COMPLETE,createActuEvent);
		}

		/**
		 * Cette function est lancée une fois le fichier xml de définition des actualités chargé
		 * @param l'eventment ayant lancé la fonction
		 */ 
		private function createActuEvent(event:Event):void{
			var modele:XML = new XML(event.target.data);
			
			var menus:Array = new Array();
			var menuNodes:XMLList = modele.children();
			
			for(var i:int = 0;i<menuNodes.length();i++){
				createActuFromXml((menuNodes[i] as XML));
			}
		}
		
		/**
		 * Cette fonction créé une actualité à partir d'un élément xml
		 */ 
		private function createActuFromXml(element:XML):void{
			
			var actu:Actualite = new Actualite(element.@title,element.@link,element.@value,graphicInit);
			panelNews.addChild(actu);
		}

	}
}